The explosive growth of networked computer systems and the large volume of data generated by companies and individuals has created a need for a storage model that can support the bandwidth used and transfer rate required by modern day computers and computer networks, and that can scale to support future increases in storage capacity. This need has stressed the capabilities of the traditional storage server model and has promoted the use of storage area network architectures, such as SAN (Storage Area Network) and NAS (Networked-Attached Storage).
SAN and NAS devices offer large bandwidth, scalability, and increased data management capabilities when compared to traditional storage servers. However, like traditional storage servers, they use at least one disk drive for mass storage. Disk drive technology offers large capacity and low expense but has positioning and data transfer characteristics that make improving the performance of disk drives relatively expensive.
A disk drive is an electromechanical storage device that can either write to or read data from at least one rotating disk, commonly referred to as a platter, in response to an instruction received from a host. In addition, it includes an interface for receiving read or write instructions and associated data from the host and for transmitting the data and appropriate control signals to a platter across a communications channel.
A disk drive write or read operation requires a transfer and a positioning step. The transfer step includes using the communications channel to transfer read data from the platter to the interface, or to transfer write data from the interface to the platter. The transfer step is electrical in nature and does not involve any mechanical movement to perform. Unlike the transfer step, the positioning step includes reading or writing data from at least one physical location on the platter and requires mechanical means to move the read/write head to the proper track and to rotate the spindle containing the track to the proper sector. Both of these steps affect the performance of a particular disk drive and are potential bottlenecks to disk drive performance, which in turn greatly affect the performance of a host that sends a data command to a NAS or SAN device using the disk drive. Current disk drives are capable of performing read or write operations in the high single to low double-digit millisecond range, which is relatively slow compared to the performance of existing computers and computer networks.
For example, computer networks exist that can transmit at rates over one gigabit per second (Gb/s), which can support the transfer of over 200 megabytes per second (MB/s) in full-duplex mode. A host or an equivalent device having a 200 MHz pipelined processor can theoretically execute 200,000 instructions per millisecond and have system memory having a data rate in the nanosecond range. Consequently, since disk drive performance is dependent on its positioning and transfer performance, they are important factors in any storage device that uses disk drive technology. An improvement in these factors can greatly reduce idle time and/or increase processing capacity and thereby, increase system or host performance that relies on such a storage device.
One approach to improving storage device performance is by using DRAM as a storage medium rather than rotating disks or platters. DRAM is a form of memory commonly referred to as volatile memory, which does not suffer from positional latencies that afflict all electromechanical disk drives. Consequently, a read or write to solid-state volatile memory takes less time to perform than when using a disk drive.
However, DRAM (or its equivalents) has certain disadvantages. DRAM must constantly be refreshed and thus, requires a constant source of power to retain data stored within it. If power to DRAM is lost, any data stored within it is lost or corrupted. One solution is to use an uninterruptible power supply (UPS). This permits the UPS to maintain data in the DRAM until primary power is restored.
Since the data storage capacity for DRAM based storage devices may be in the gigabyte range a considerable amount of back-up power is needed. An uninterruptible power supply uses batteries as standby power and thus, has only a limited amount of power that is available to maintain data in DRAM. Should the standby power be exhausted before primary power is restored, then all data in the DRAM will be lost. Hence, improved solutions include using at least one disk drive as a back-up storage medium. This permits data in DRAM to be transferred and stored in the disk drive, which is a process called flushing.
However, such solutions are large and unwieldy because the UPS must not only provide enough standby power to refresh the data in volatile memory but it must also have enough standby power to keep the disk drive operating while data is being flushed from DRAM to the disk drive. Consequently, for a battery-based UPS, a high-capacity battery is required, which typically means a large lead-acid battery.
Moreover, for large capacity DRAM-base storage devices, flushing can take several minutes to perform, which is another disadvantage. For storage devices having DRAM storage capabilities in the 1 to 10 Gigabyte range, it can take several minutes to over an hour to flush, depending on the average sustained transfer rate from DRAM to the back-up disk drive, and the back-up disk drive's file structure, cluster size, fragmentation, and partitioning characteristics. This time requirement can exceed the capabilities of many UPS systems since many are battery powered and will eventually fail if downtime power demands exceed their battery capacity. Thus, such systems also do not scale very well.
The delay in flushing a large cache has an additional disadvantage as well. Each time the storage device needs to be brought off-line and turned off, its cache must first be flushed, consuming a significant amount of time as described above before being available for maintenance. As a result, operational downtime for that storage device is increased. If the storage device is one of many, then operational capacity provided by the group of devices is decreased until the storage device is completed flushed and swapped with another storage device.
Accordingly, a need exists for an improved storage device that minimizes the above disadvantages. In addition, a need exists for an improved storage device that is network addressable and that has an embedded file system. Further, a need exists for an improved storage device that is can be used in Fibre Channel network, commonly referred to as a Storage Area Network.